在前一篇,我們學會了變數與運算子,能處理像「成交金額 = 價格 × 成交量」這樣的計算。
不過選股工具真正有用的地方是:能根據 條件 來判斷一檔股票是否該被觀察。
今天,我們來學 C# 的流程控制:if/else 與 switch。
舉例來說:
這就是程式中的「分支」。如果沒有條件判斷,程式就只能一成不變,沒辦法根據情況作出不同反應。
最簡單的範例:
double price = 120;
double target = 100;
if (price > target)
{
    Console.WriteLine("股價高於目標價,進入觀察名單");
}
else
{
    Console.WriteLine("股價未達目標價,忽略");
}
輸出:
股價高於目標價,進入觀察名單
有時候 if/else 區塊很短,寫起來就顯得冗長。
C# 提供了「三元運算子」可以讓程式更精簡:
double price = 120;
double target = 100;
Console.WriteLine(
    (price > target) 
    ? "股價高於目標價,進入觀察名單" 
    : "股價未達目標價,忽略"
);
👉 建議:三元運算子適合「單一判斷 + 單行結果」的場合,如果邏輯複雜還是用 if/else 比較清楚。
當條件很多時,使用 if/else 會讓程式變得很亂,這時候 switch 更清楚。
標準寫法:
string mode = "技術面";
switch (mode)
{
    case "基本面":
        Console.WriteLine("模式:基本面分析");
        break;
    case "技術面":
        Console.WriteLine("模式:技術分析");
        break;
    case "籌碼面":
        Console.WriteLine("模式:籌碼分析");
        break;
    default:
        Console.WriteLine("未知的模式");
        break;
}
有時候 default 可以和某些 case 共用邏輯,程式就會更緊湊:
string mode = "技術面";
switch (mode)
{
    default:
    case "基本面":
        Console.WriteLine("模式:基本面分析");
        break;
    case "技術面":
        Console.WriteLine("模式:技術分析");
        break;
    case "籌碼面":
        Console.WriteLine("模式:籌碼分析");
        break;
}
👉 這樣的寫法代表:
mode 沒有符合任何 case,或等於 "基本面" 時,都會進入「基本面分析」。雖然 if/else 非常好用,但它並不是萬能的。
如果條件太多,一路寫下來就會變成「階梯狀地獄」── 可讀性差、維護困難。
像下面這張圖的例子:
程式碼沒有語法錯誤,但充滿了巢狀的 if/else if。
這種寫法短期內能跑,但:
👉 解決方式:
switch 改寫最後我們把今天的重點整合到一個 Console 程式:
using System;
class Program
{
    static void Main(string[] args)
    {
        // 股票資訊
        string stock = "TSMC";
        double price = 540.5;
        // 使用者設定目標價
        double target = 500;
        // if/else 判斷
        if (price > target)
        {
            Console.WriteLine($"股票 {stock} 股價 {price} 高於目標價 {target} → 加入觀察名單");
        }
        else
        {
            Console.WriteLine($"股票 {stock} 股價 {price} 未達目標價 {target} → 忽略");
        }
        // 三元運算子 (簡化 if/else)
        Console.WriteLine(
            (price > target) 
            ? "使用三元運算子:股價達到目標價" 
            : "使用三元運算子:股價未達目標價"
        );
        // 使用 switch 判斷觀察模式
        string mode = "技術面";
        switch (mode)
        {
            default:
            case "基本面":
                Console.WriteLine("模式:基本面分析");
                break;
            case "技術面":
                Console.WriteLine("模式:技術分析");
                break;
            case "籌碼面":
                Console.WriteLine("模式:籌碼分析");
                break;
        }
    }
}
執行結果:
股票 TSMC 股價 540.5 高於目標價 500 → 加入觀察名單
使用三元運算子:股價達到目標價
模式:技術分析
今天我們學會了: